#ifndef DEMO_DEMOGAME
#define DEMO_DEMOGAME

#include "EngineD3D.h"

class Demo : public EngineD3D
{
private:
	static Demo* _this;

	const D3DXVECTOR3 _v3Target;
	const D3DXVECTOR3 _v3Up;

	FLOAT _camAngle;
	FLOAT _camRadius;
	FLOAT _camHeight;
	void _SetCam();


	FLOAT _fGeoAngle;
	Geometry _geoRhom1;
	Geometry _geoRhom2;
	void _SetRhoms();

	PointLight _litPoints[3];
	list<PointLight*>::iterator _itlits[3];

	Timer* _hold[256];

	class _HoldCamera : public Timer
	{
	private:
		BYTE _code;
	public:
		_HoldCamera(BYTE code);
	protected:
		void OnTick();
	};

	class _Rolling : public Timer
	{
	public:
		_Rolling();
	protected:
		void OnTick();
	};

protected:
	virtual void OnLoad();
	virtual void OnKeyDown(BYTE code);
	virtual void OnKeyUp(BYTE code);

public:
	Demo(LPCSTR title);

};

#endif//DEMO_DEMOGAME
